本篇著重在最基本的連線使用,關於redis型態存取無詳細說明
必須先安裝redis,並開啟服務
使用完以下三個方法,個人還是認為python原生的redis比較好用,純屬個人意見
安裝python redis套件: pip install redis
import redis # 導入redis模塊
r = redis.Redis(host='localhost', port=6379, decode_responses=True)
# redis取出值設置是byte,可用decode_responses=True改成字符串
# 也可以取出後再decode('utf8')
# 測試
r.set('keyName', 'value')
text = r.get('keyName')
print(text) # 顯示 'value'
安裝django-redis套件: pip install django-redis
CACHES = {
"default": {
# 預設使用
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/1", # 指定redis://IP/第幾個DB
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
},
'KEY_PREFIX': 'Cache'
},
# 其他redis庫
"testRedis": {
"BACKEND": "django_redis.cache.RedisCache",
"LOCATION": "redis://127.0.0.1:6379/2",
"OPTIONS": {
"CLIENT_CLASS": "django_redis.client.DefaultClient",
},
'KEY_PREFIX': 'Cache'
},
}
★必須注意以下★
預設取 default 資料庫
(此種方法會增加預設前綴 KEY_PREFIX:1:"keyName")
在使用時不管讀取或新增等等操作只要帶keyName即可,但不能讀取一般key值
最後一個缺點是,使用該方法無法使用redis Lpush、Rpush等等,所以還是建議使用方法二
# django-redis取default值
from django.core.cache import cache # django內建快取
cache.set("keyName", "value", timeout=25) # 設置key、值、逾時時間
cache.get("keyName") # 取值
因為方法1會帶前綴值,所以當無法決定keyName時可用此方法代替
from django_redis import get_redis_connection # django-redis使用原生連線
# 使用方法幾乎等同原生python
cacheCon = get_redis_connection("testRedis") # 指向setting的CACHES > testRedis
cacheCon.set('keyName', 'value')
value = cacheCon.get('keyName')